Linux Basic Commands
Navigation Commands (Harakatlanish Buyruqlari)
pwd - Print Working Directory
Hozirgi katalogni ko'rsatadi.
# Hozirgi katalogni aniqlash
pwd
# Natija: /home/username
# Symbolic link'lar bilan ishlash
pwd -P # Physical path (real path)
pwd -L # Logical path (symbolic link orqali)
DevOps uchun amaliy foydalanish:
# Script'da hozirgi katalogni saqlash
CURRENT_DIR=$(pwd)
echo "Script is running from: $CURRENT_DIR"
cd - Change Directory
Katalog o'zgartirish uchun ishlatiladi.
# Asosiy foydalanish
cd /path/to/directory # Absolut path
cd relative/path # Nisbiy path
# Maxsus shortcut'lar
cd ~ # Home directory ga o'tish
cd ~/Documents # Home/Documents ga o'tish
cd - # Oldingi katalogga qaytish
cd .. # Yuqori katalogga o'tish
cd ../.. # Ikki daraja yuqoriga
cd . # Hozirgi katalogda qolish
# Katalog nomi bo'sh joy bilan
cd "My Documents" # Qo'shtirnoq ishlatish
cd My\ Documents # Backslash ishlatish
DevOps uchun amaliy misollar:
# Kubernetes konfiguratsiya katalogiga o'tish
cd /etc/kubernetes/
# Docker compose loyihalariga o'tish
cd ~/projects/microservices/
# Log katalogiga o'tish
cd /var/log/nginx/
# Temporary working directory
cd /tmp/deployment/
ls - List Directory Contents
Katalog mazmunini ko'rsatadi.
# Asosiy foydalanish
ls # Hozirgi katalog
ls /path/to/directory # Berilgan katalog
ls file1 file2 # Maxsus fayllar
# Muhim parametrlar
ls -l # Long format (batafsil)
ls -a # Hidden fayllar ham (.dot fayllari)
ls -la # Long format + hidden fayllar
ls -lh # Human readable size
ls -lt # Vaqt bo'yicha saralash
ls -ltr # Teskari vaqt bo'yicha
ls -lS # Hajm bo'yicha saralash
ls -R # Recursive (ichki kataloglar ham)
Advanced ls options:
# Ranglar bilan
ls --color=auto
# Faqat kataloglar
ls -d */
# Faqat hidden fayllar
ls -ld .*
# O'lcham bilan
ls -lah
# Inode numbers bilan
ls -li
# Fayllarni type bo'yicha ko'rsatish
ls -F
# / - katalog
# * - executable
# @ - symbolic link
# | - named pipe
# = - socket
# Specific file types
ls *.txt # Faqat .txt fayllar
ls -l *.conf # .conf fayllari long format da
# DevOps uchun foydali
ls -la /etc/nginx/ # Nginx konfiguratsiya fayllari
ls -ltr /var/log/ # Eng yangi log fayllar
ls -lah ~/.ssh/ # SSH kalitlari
Directory Operations (Katalog Operatsiyalari)
mkdir - Make Directory
Yangi katalog yaratish.
# Asosiy foydalanish
mkdir newdir # Bitta katalog
mkdir dir1 dir2 dir3 # Bir nechta katalog
# Parent kataloglar bilan
mkdir -p /path/to/deep/directory
mkdir -p project/{src,tests,docs,config}
# Permission bilan yaratish
mkdir -m 755 newdir # Specific permission
mkdir -m 700 secure_dir # Faqat owner access
# Verbose mode
mkdir -v newdir # Yaratilgani haqida xabar
DevOps uchun amaliy misollar:
# Kubernetes deployment structure
mkdir -p k8s/{namespaces,deployments,services,configmaps,secrets}
# Docker project structure
mkdir -p docker-project/{src,tests,config,scripts,docs}
# Log directories
sudo mkdir -p /var/log/myapp/{access,error,debug}
# Backup directories
mkdir -p ~/backups/$(date +%Y-%m-%d)
# Terraform project
mkdir -p terraform/{modules,environments,scripts}
rmdir - Remove Directory
Bo'sh kataloglarni o'chirish.
# Bo'sh katalogni o'chirish
rmdir empty_dir
# Bir nechta bo'sh katalog
rmdir dir1 dir2 dir3
# Parent kataloglarni ham o'chirish (agar bo'sh bo'lsa)
rmdir -p path/to/empty/directory
# Ignore non-empty directories
rmdir --ignore-fail-on-non-empty dir1 dir2
rm - Remove Files and Directories
Fayllar va kataloglarni o'chirish.
# Fayl o'chirish
rm file.txt
rm file1.txt file2.txt
# Katalog o'chirish (recursive)
rm -r directory/ # Recursive
rm -rf directory/ # Force + recursive
rm -ri directory/ # Interactive + recursive
# Maxsus parametrlar
rm -f file.txt # Force (hatto readonly bo'lsa ham)
rm -i file.txt # Interactive (tasdiqlash so'rash)
rm -v file.txt # Verbose (harakatni ko'rsatish)
# Wildcard patterns
rm *.txt # Barcha .txt fayllar
rm test* # test bilan boshlangan fayllar
rm *.log *.tmp # .log va .tmp fayllar
# Xavfsizlik uchun
rm -I * # 3 tadan ko'p fayl uchun tasdiqlash
Xavfsizlik bo'yicha muhim eslatmalar:
# HECH QACHON buni QILMANG!
rm -rf / # Butun tizimni o'chiradi
rm -rf /* # Barcha root kataloglarni o'chiradi
# Xavfsiz alternativalar
# Avval ls bilan tekshiring
ls -la directory/
# Keyin o'chiring
rm -rf directory/
# Trash o'rniga foydalaning (agar mavjud bo'lsa)
trash file.txt # Recycle bin ga o'tkazish
DevOps uchun amaliy misollar:
# Old container logs tozalash
rm -f /var/log/containers/*.log
# Temporary build files
rm -rf build/ dist/ node_modules/
# Old backup files (7 kundan eski)
find /backups/ -type f -mtime +7 -delete
# Clean Docker resources
docker system prune -a -f
# Clean old deployment files
rm -rf /tmp/deployment-$(date -d '1 week ago' +%Y%m%d)*
File Operations (Fayl Operatsiyalari)
cp - Copy Files and Directories
Fayllar va kataloglarni nusxalash.
# Asosiy fayl nusxalash
cp source.txt destination.txt
cp source.txt /path/to/destination/
# Katalog nusxalash
cp -r source_dir/ destination_dir/
# Muhim parametrlar
cp -a source dest # Archive mode (barcha atributlar bilan)
cp -p source dest # Preserve permissions, timestamps
cp -u source dest # Update (faqat yangisi bo'lsa)
cp -i source dest # Interactive (ustiga yozishdan oldin so'rash)
cp -v source dest # Verbose mode
cp -f source dest # Force (majburiy)
# Backup yaratish
cp -b source dest # Backup copy yaratish
cp --backup=numbered source dest # Numbered backup
# Symbolic link'lar bilan
cp -L source dest # Follow symbolic links
cp -P source dest # Preserve symbolic links
DevOps uchun amaliy misollar:
# Configuration backup
cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
# Copy deployment configs
cp -r k8s/staging/ k8s/production/
# Archive with permissions
cp -a /opt/app/ /backup/app-$(date +%Y%m%d)/
# Copy Docker files
cp Dockerfile.template Dockerfile
# Multiple server config deployment
for server in server1 server2 server3; do
cp config.yaml $server/
done
mv - Move/Rename Files and Directories
Fayllarni ko'chirish yoki qayta nomlash.
# Fayl nomlashni o'zgartirish
mv oldname.txt newname.txt
# Fayl ko'chirish
mv file.txt /new/location/
mv file.txt /new/location/newname.txt
# Katalog ko'chirish/nomlash
mv old_dir/ new_dir/
mv directory/ /new/path/
# Parametrlar
mv -i source dest # Interactive mode
mv -u source dest # Update only
mv -v source dest # Verbose mode
mv -f source dest # Force mode
mv -b source dest # Backup yaratish
# Bir nechta fayl
mv file1 file2 file3 destination_directory/
mv *.txt documents/
DevOps uchun amaliy misollar:
# Log rotation
mv /var/log/app.log /var/log/app.log.$(date +%Y%m%d)
# Deployment versioning
mv current-release/ previous-release/
mv new-release/ current-release/
# Configuration management
mv nginx.conf nginx.conf.old
mv nginx.conf.new nginx.conf
# Kubernetes manifests
mv deployment-v1.yaml deployment-v1.yaml.backup
mv deployment-v2.yaml deployment.yaml
# Database migrations
mv schema.sql schema-$(date +%Y%m%d_%H%M%S).sql
File Content Commands (Fayl Mazmuni Buyruqlari)
cat - Display File Content
Fayl mazmunini ko'rsatish.
# Asosiy foydalanish
cat file.txt # Fayl mazmunini ko'rsatish
cat file1.txt file2.txt # Bir nechta fayl
# Useful options
cat -n file.txt # Line numbers bilan
cat -b file.txt # Faqat bo'sh bo'lmagan qatorlar uchun raqam
cat -A file.txt # Barcha maxsus belgilarni ko'rsatish
cat -s file.txt # Multiple blank lines ni bitta qilish
# File yaratish (Here document)
cat > newfile.txt << EOF
Bu yangi fayl matni
Ikkinchi qator
EOF
# File ga qo'shish
cat >> existing_file.txt << EOF
Qo'shimcha matn
EOF
DevOps uchun amaliy misollar:
# Config fayl ko'rish
cat /etc/nginx/nginx.conf
# Multiple config files
cat /etc/host*
# Log file ko'rish
cat /var/log/app.log
# Kubernetes manifest
cat deployment.yaml
# Docker compose file
cat docker-compose.yml
# Script yaratish
cat > deploy.sh << 'EOF'
#!/bin/bash
echo "Starting deployment..."
kubectl apply -f deployment.yaml
EOF
chmod +x deploy.sh
Amaliy DevOps Stsenarilar
1. Loyiha Strukturasini Yaratish
# Microservice loyihasi yaratish
mkdir -p microservice-project/{
api/{src,tests,config},
web/{src,public,tests},
database/{migrations,seeds},
infrastructure/{kubernetes,terraform,ansible},
docs,
scripts
}
# Docker environment
mkdir -p docker-env/{
app,
nginx,
database,
redis
}
2. Log Tahlili
# Eng katta log fayllarni topish
ls -laSh /var/log/ | head -10
# Yangi log fayllarni ko'rish
ls -ltr /var/log/ | tail -5
# Container log'larni ko'rish
ls -la /var/lib/docker/containers/*/
3. Xavfsizlik va Backup
# SSH kalitlarini backup qilish
cp -a ~/.ssh/ ~/backup/ssh-backup-$(date +%Y%m%d)/
# Important config files backup
mkdir -p ~/backup/configs-$(date +%Y%m%d)
cp /etc/nginx/nginx.conf ~/backup/configs-$(date +%Y%m%d)/
cp /etc/hosts ~/backup/configs-$(date +%Y%m%d)/
cp /etc/fstab ~/backup/configs-$(date +%Y%m%d)/
4. Cleanup Scripts
# Old temporary files tozalash
rm -rf /tmp/*-old
rm -f /tmp/*.tmp
# Docker cleanup
rm -rf /var/lib/docker/tmp/*
# Log rotation
mv /var/log/app.log /var/log/app.log.$(date +%Y%m%d_%H%M%S)
touch /var/log/app.log
Xulosa
Ushbu asosiy buyruqlar Linux tizimida ish yuritishning poydevoridir. DevOps muhandislari uchun bu buyruqlarni mukammal bilish juda muhim, chunki:
- Tizim navigatsiyasi:
pwd,cd,lsbuyruqlari bilan tizimda erkin harakatlanish - Fayl boshqaruvi:
mkdir,rm,cp,mvbilan fayl va kataloglarni boshqarish - Monitoring: Log fayllar va konfiguratsiyalarni ko'rish va tahlil qilish
- Automatizatsiya: Script'larda ushbu buyruqlardan foydalanish
Har bir buyruqning man sahifasini o'qib chiqing (man ls, man cp, va h.k.) va amaliyotda ko'proq mashq qiling!